package logica;

import java.util.LinkedList;
import java.util.Queue;

public abstract class Nivel {

	// Atributos de instancia
	private Queue<Par<Integer,Integer>> intervalos;
	private Nivel siguienteNivel;
	protected String nombre1;
	protected String nombre2;
	public static final int 
		MOVIMIENTO_ABAJO_PARALELO = 1,
		MOVIMIENTO_DIAGONAL = 2,
		MOVIMIENTO_ABAJO_TRIPLE = 3,
		MOVIMIENTO_SORPRESA = 4;
	
	// Constructor
	public Nivel () {
		this.siguienteNivel = null;
		this.intervalos = new LinkedList<Par<Integer,Integer>>();
		this.nombre1 = nombre1;
	}
	
	// Métodos
	public void insertarIntervalo (int cantNaves, int movimiento){
		intervalos.add(new Par(cantNaves,movimiento));
	}
	
	public Par<Integer,Integer> liberarIntervalo () throws NullPointerException{
		return intervalos.poll();
	}

	public String getNombre(){
		return "<html><div style=\"text-align: center;\">"+nombre1+"<br>"+nombre2+"</html>";
	}
	
	public void setNivelSiguiente (Nivel siguiente){
		this.siguienteNivel = siguiente;
	}
	
	public Nivel getSiguienteNivel (){
		return siguienteNivel;
	}
}
